package main.java.com.example.mainstream.database;

import android.annotation.SuppressLint;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.example.shopapp.bean.Goods;
import com.example.shopapp.dao.GoodsDao;

import java.util.ArrayList;
import java.util.List;

public class GoodsDBUtils {

    // 数据库名称
    public static final String DB_NAME = "goods_dbname";
    // 数据库版本
    public static final int VERSION = 1;

    private static GoodsDBUtils sqliteDB;
    private SQLiteDatabase db;

    private GoodsDBUtils(Context context) {
    }

    /**
     * 获取UserDBUtils的单例对象
     *
     * @param context 上下文对象
     * @return UserDBUtils的单例对象
     */
    public synchronized static GoodsDBUtils getInstance(Context context) {
        if (sqliteDB == null) {
            sqliteDB = new GoodsDBUtils(context);
        }
        return sqliteDB;
    }

    /**
     * 根据id删除商品信息
     *
     * @param context 上下文对象
     * @param id      商品id
     */
    public void delete(Context context, long id) {
        GoodsDao goodsDao = GreenDaoManager.getmInstance().getDaoSession().getGoodsDao();
        goodsDao.deleteByKey(id);
    }


    @SuppressLint("Range")
    public List<Goods> getGoodsList() {
        List<Goods> goodsList = new ArrayList<>(); // 创建一个空的商品列表
        GoodsDao goodsDao = GreenDaoManager.getmInstance().getDaoSession().getGoodsDao();
        goodsList = goodsDao.loadAll();
        return goodsList; // 返回商品列表
    }

    @SuppressLint("Range")
    public List<Goods> getGoodsListByUserid(long userid) {
        List<Goods> goodsList = new ArrayList<>(); // 创建一个空的商品列表
        List<Goods> list = new ArrayList<>(); // 创建一个空的商品列表
        GoodsDao goodsDao = GreenDaoManager.getmInstance().getDaoSession().getGoodsDao();
        list = goodsDao.loadAll();
        if (list != null && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                if (userid == list.get(i).getUserid()) {
                    goodsList.add(list.get(i));
                }
            }
        }
        return goodsList; // 返回商品列表
    }

    @SuppressLint("Range")
    public List<Goods> getGoodsListByGoodType(String goods_type) {
        List<Goods> goodsList = new ArrayList<>(); // 创建一个空的商品列表
        List<Goods> list = new ArrayList<>(); // 创建一个空的商品列表
        GoodsDao goodsDao = GreenDaoManager.getmInstance().getDaoSession().getGoodsDao();
        list = goodsDao.loadAll();
        if (list != null && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                if (goods_type.equals(list.get(i).getGoods_type())) {
                    goodsList.add(list.get(i));
                }
            }
        }
        return goodsList; // 返回商品列表
    }


    @SuppressLint("Range")
    public List<Goods> getGoodsListByGoodTitleOrGoodType(String goods_type) {
        List<Goods> goodsList = new ArrayList<>(); // 创建一个空的商品列表

        List<Goods> list = new ArrayList<>(); // 创建一个空的商品列表
        GoodsDao goodsDao = GreenDaoManager.getmInstance().getDaoSession().getGoodsDao();
        list = goodsDao.loadAll();
        if (list != null && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                if (list.get(i).getGoods_type().indexOf(goods_type)!= -1
                || list.get(i).getTitle().indexOf(goods_type)!= -1) {
                    goodsList.add(list.get(i));
                }
            }
        }
        return goodsList; // 返回商品列表
    }


    @SuppressLint("Range")
    public List<Goods> getFpGoodsListByGoodTitleOrGoodType(String goods_type) {
        List<Goods> goodsList = new ArrayList<>(); // 创建一个空的商品列表


        List<Goods> list = new ArrayList<>(); // 创建一个空的商品列表
        GoodsDao goodsDao = GreenDaoManager.getmInstance().getDaoSession().getGoodsDao();
        list = goodsDao.loadAll();
        if (list != null && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                if ("拼团商品".equals(list.get(i).getGoods_type())
                        || list.get(i).getTitle().indexOf(goods_type)!= -1) {
                    goodsList.add(list.get(i));
                }
            }
        }
        return goodsList; // 返回商品列表
    }

    @SuppressLint("Range")
    public List<Goods> getGoodsListByGoodType(long userid, String goods_type) {
        List<Goods> goodsList = new ArrayList<>(); // 创建一个空的商品列表
        List<Goods> list = new ArrayList<>(); // 创建一个空的商品列表
        GoodsDao goodsDao = GreenDaoManager.getmInstance().getDaoSession().getGoodsDao();
        list = goodsDao.loadAll();
        if (list != null && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                if (userid == list.get(i).getUserid()
                        &&  goods_type.equals(list.get(i).getGoods_type())) {
                    goodsList.add(list.get(i));
                }
            }
        }
        return goodsList; // 返回商品列表
    }


}

